# Feed
#
# <プラグイン概要>
# feedの生成または取得/出力を行います
#
# <使用方法>
# ページ内で使用すると、feedを取得して出力します。 # 作成予定
# #feed(URL,表示数)
#
# アクションとして使用すると、wikiのRSSを出力します。
# http://your_domain/path_to_wiki/latest/feed/plugin
# 
#
require 'rss'
module WikiPlugin::Feed::Function

  def init
  end
  def inline
  end

  #
  # コメントを受け付けてデータを更新する
  #
  def action

    options = {
#      :include    => :tags,
      :select     => 'contents.title, contents.created_on, contents.updated_on, contents.body',
      :order      => 'contents.created_on desc',
      :limit      => 15,
    }
    contents = Content.find(:all, options)

    rss = RSS::Maker.make("1.0") do |maker|

      feed_uri = FEED_URI.empty? ? "http://#{request.env['HTTP_HOST']}#{_www_dir}latest/feed/plugin" : FEED_URI
      url = "http://#{request.env['HTTP_HOST']}#{_www_dir}"

      maker.channel.about = FEED_URI
      maker.channel.title = WIKI_TITLE
      maker.channel.description = WIKI_DESCRIPTION
      maker.channel.link = url
      maker.channel.date = contents[0].created_on

      contents.each do |content|
        maker.items.new_item do |item|
          item.link = "#{url}#{content.title}"
          item.title = content.title
          item.description = content.fetch_convert_body_without_block_and_plugin
          item.date = content.created_on
        end
      end
    end

    render :inline=>rss.to_s
  end

end
